import { QueryInterface } from 'sequelize';

module.exports = {
  // 在执行数据库升级时调用的函数，创建 rolerights 表
  up: async (queryInterface:QueryInterface, Sequelize) => {
    const { INTEGER, DATE } = Sequelize;
    await queryInterface.createTable('role_rights', {
      id: {
        type: INTEGER,
        primaryKey: true,
        autoIncrement: true, // 自动创建
      },
      role_id: { // 角色的id
        type: INTEGER, // varchar(255)
        allowNull: false,
        unique: false,
        references: { // 与role表中的id绑定,以后只要查到授权信息的role_id就能查到是哪个角色了
          model: 'roles',
          key: 'id',
        },
      },
      rights_id: { // 权限的id
        type: INTEGER,
        allowNull: false,
        unique: false,
        references: { // 与rights表中的id绑定,以后只要查到授权信息的rights_id就能查到是有用哪个权限了
          model: 'rights',
          key: 'id',
        },
      },
      created_at: {
        type: DATE,
      },
      updated_at: {
        type: DATE,
      },
    });
  },
  // 在执行数据库降级时调用的函数，删除 rolerights 表
  down: async (queryInterface:QueryInterface) => {
    await queryInterface.dropTable('role_rights');
  },
};
